using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SCHD
{
    public partial class WFClase_Mant : TDV.Controles.Base.WinForm.BaseForm_Tipo01
    {
        #region Campos
        LBClase ClaseMod = new LBClase();
        protected string codigo = "";
        #endregion
        #region Constructores
        public WFClase_Mant()
        {
            InitializeComponent();
        }
        public WFClase_Mant(string Codigo)
            :this()
        {
            codigo = Codigo;
        }
        #endregion

        private void WFClase_Mant_Load(object sender, EventArgs e)
        {
            Cargar();
            btnAsignar.Enabled = false;
            txtClases.CharacterCasing = CharacterCasing.Upper;
            this.KeyPreview = true;
        }
        protected void Cargar()
        {
            try
            {
            LBClase clase = new LBClase();
            clase.Filtros.CodigoCategoria = codigo.ToString().Substring(0, 3);
            clase.Filtros.CodigoTipo = codigo.ToString().Substring(3, 3);
            clase.Buscar();
            dgClases.DataSource = clase;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }


        private void txtClases_TextChanged(object sender, EventArgs e)
        {
            if (txtClases.Text.Length > 0)
            {
                btnAsignar.Enabled = true;
            }
        }

        private void btnAsignar_Click(object sender, EventArgs e)
        {
            Guardar();
        }
        protected void Guardar()
        {
            try
            {
                EBClase clase = new EBClase();
                clase.CodigoCategoria = codigo.ToString().Substring(0, 3);
                clase.CodigoTipo = codigo.ToString().Substring(3, 3);
                clase.DescripcionClase = txtClases.Text.Trim();
                clase.Grabar();
                txtClases.Text = "";
                Cargar();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            DialogResult = DialogResult.OK;
        }

        private void btnQuitar_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dgClases.Rows)
            {
                DataGridViewCheckBoxCell ck1 = row.Cells[0] as DataGridViewCheckBoxCell;

                //CheckBox ck = (CheckBox)row.Cells[0].Value;
                if (Convert.ToBoolean(ck1.Value))
                {
                    try
                    {
                        EBClase clases = new EBClase();
                        clases.CodigoCategoria = codigo.ToString().Substring(0, 3);
                        clases.CodigoTipo = codigo.ToString().Substring(3,3);
                        clases.CodigoClase = row.Cells[1].Value.ToString();
                        clases.Eliminar();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("La Clase ya tiene atributos asignados, favor de eliminar los atributos primero", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            Cargar();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            foreach (EBClase __Clase in ClaseMod)
            {
                __Clase.Grabar();
            }
            ClaseMod.Clear();
            DialogResult = DialogResult.OK;
        }

        private void dgClases_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dgClases.Columns[e.ColumnIndex].Name != null)
            {
                // Se toma la fila seleccionada 
                if (e.RowIndex > -1)
                {
                    DataGridViewRow row = dgClases.Rows[e.RowIndex];
                    string Codigo = row.Cells[1].Value.ToString();
                    EBClase Clase_ = new EBClase();
                    Clase_.CodigoCategoria = codigo.ToString().Substring(0,3);
                    Clase_.CodigoTipo = codigo.ToString().Substring(3,3);
                    Clase_.CodigoClase = row.Cells[1].Value.ToString();
                    Clase_.DescripcionClase = row.Cells[2].Value.ToString();
                    ClaseMod.Nuevo(Clase_);
                }
                
            }
        }

        private void WFClase_Mant_KeyPress(object sender, KeyPressEventArgs e)
        {
            // this.OnKeyPress(e);

            if (e.KeyChar == (char)Keys.Escape)
                //  MessageBox.Show("Ha presionado ESCAPAR");
                DialogResult = DialogResult.Cancel;
        }

        private void txtClases_KeyDown(object sender, KeyEventArgs e)
        {
            if (txtClases.Text.Length > 0)
            {

                if (e.KeyCode == Keys.Enter)
                {
                    Guardar();
                }
                btnAsignar.Enabled = true;
            }
            else
            {
                btnAsignar.Enabled = false;
            }
        }
    }
}

